home *** CD-ROM | disk | FTP | other *** search
- (******************************************************************
- ****
- **** Name: ConLib.mod
- ****
- **** Author: Bjørn Reese
- ****
- **** Template of Oberon Module for 'con.library'
- ****
- **** WARNING!! Not tested at all!
- ****
- ******************************************************************)
-
- MODULE ConLib;
-
- IMPORT e :Exec;
-
- ADDRESS * = e.ADDRESS;
- CHARDEFSIZE * = 36;
- IGNOREVALUE * = -1;
-
- TYPE
- ConBase * = STRUCT
- con_Lib * : e.Library; (* Library Node *)
- con_SegList * : ADDRESS; (* Segment List [from LoadSeg()] *)
- con_IntBase * : ADDRESS; (* Intuition Base *)
- con_MathBase * : ADDRESS; (* MathFFP Base *)
- END;
- ConBasePtr * = POINTER TO ConBase;
- ConHandle * = STRUCT
- cnh_CDBase * : ADDRESS; (* Base of Console Device *)
- cnh_Window * : ADDRESS; (* Our Intuition Window *)
- cnh_UserPort * : ADDRESS; (* UserPort for Window *)
- cnh_Unit * : ADDRESS; (* ConUnit *)
- cnh_WriteIO * : ADDRESS; (* Our Write IO Port *)
- cnh_Signal * : LONGSET; (* SignalSet [for Wait()] *)
- cnh_ExLength * : INTEGER; (* Extra Space for String Formatting *)
- cnh_CursorStatus * : INTEGER; (* Current Cursor Status [on/off] *)
- cnh_PadSpace * : CHAR; (* Char for Leading Spaces in Numbers *)
- cnh_PadZero * : CHAR; (* Char for Leading Zeros in Numbers *)
- cnh_PadGroup * : CHAR; (* Char for Group Classifying *)
- cnh_PadString * : CHAR; (* Char for Unused String Positions *)
- cnh_DecimalPoint * : CHAR; (* Char for Decimal Point *)
- cnh_FloatE * : CHAR; (* Char for Floating Point Exponent *)
- cnh_EchoTable * : ARRAY CHARDEFSIZE OF SHORTINT; (* BitTable for Echo Chars *)
- cnh_UserNotes * : ARRAY 8 OF ADDRESS; (* List of Pointers to UserNotes *)
- cnh_MsgHandler * : ADDRESS; (* Pointer to a User Message Handler *)
- cnh_Reserved * : ARRAY 4 OF LONGINT;
- END;
- ConHandlePtr * = POINTER TO ConHandle;
- ConInfo * = STRUCT
- cin_XPos * : INTEGER; (* Cursor X Position *)
- cin_YPos * : INTEGER; (* Cursor Y Position *)
- cin_XSize * : INTEGER; (* Chars per Line *)
- cin_YSize * : INTEGER; (* Lines in Window *)
- cin_Styles * : INTEGER; (* Text Styles *)
- cin_FgCol * : INTEGER; (* ForeGround Color *)
- cin_BgCol * : INTEGER; (* BackGround Color *)
- cin_Reserved * : ARRAY 4 OF LONGINT;
- END;
- ConInfoPtr * = POINTER TO ConInfo;
- AcceptStructure * = STRUCT
- acc_XStart * : INTEGER; (* Start X Position *)
- acc_YStart * : INTEGER; (* Start Y Position *)
- acc_Styles * : INTEGER; (* Text Styles *)
- acc_FgCol * : INTEGER; (* ForeGround Color *)
- acc_BgCol * : INTEGER; (* BackGround Color *)
- acc_ExitFlags * : LONGSET; (* IDCMP Exit Flags *)
- acc_Class * : LONGSET; (* Copy of im_Class *)
- acc_Code * : INTEGER; (* Copy of im_Code *)
- acc_Qualifier * : INTEGER; (* Copy of im_Qualifier *)
- acc_IAddress * : ADDRESS; (* Copy of im_IAddress *)
- acc_MouseX * : INTEGER; (* Copy of im_MouseX *)
- acc_MouseY * : INTEGER; (* Copy of im_MouseY *)
- acc_Seconds * : LONGINT; (* Copy of im_Seconds *)
- acc_Micros * : LONGINT; (* Copy of im_Micros *)
- acc_IDCMPWindow : ADDRESS; (* Copy of im_IDCMPWindow *)
- acc_ValidTable * : ARRAY CHARDEFSIZE OF SHORTINT; (* BitTable of Valid Chars *)
- acc_ExitTable * : ARRAY CHARDEFSIZE OF SHORTINT; (* BitTable of Exit Chars *)
- acc_Char * : CHAR; (* ASCII char *)
- acc_Pad001 * : SHORTINT; (* Nothing serious *)
- acc_Reserved * : ARRAY 4 OF LONGINT;
- END;
- AcceptStructurePtr * = POINTER TO AcceptStructure;
- EAcceptStructure * = STRUCT
- accs_InputBuffer * : ADDRESS; (* Pointer to Input Buffer *)
- accs_UndoBuffer * : ADDRESS; (* Pointer to Work Buffer *)
- accs_MaxLength * : INTEGER; (* Maximum Length of Text [incl. NULL] *)
- accs_FieldLen * : INTEGER; (* Length of Input Field [incl. NULL] *)
- accs_Length * : INTEGER; (* Current Length of Text [excl. NULL] *)
- accs_Position * : INTEGER; (* Current Position in Text *)
- accs_DispPos * : INTEGER; (* First Displayed Position in Text *)
- accs_Reserved * : ARRAY 4 OF LONGINT;
- END;
- EAcceptStructurePtr * = POINTER TO EAcceptStructure;
-
- CONST
- DEFMODE_ALL * = 0;
- DEFMODE_NEW * = 1;
- DEFMODE_ADD * = 2;
- DEFMODE_REM * = 3;
- DEFMODE_GET * = 4;
- DEFALL * = 0;
- DEFNONE * = 00020000H;
- DEFALFANUM * = 00040000H;
- DEFALFA * = 00060000H;
- DEFNUMERIC * = 00080000H;
- DEFDECIMAL * = 000A0000H;
- DEFHEX * = 000C0000H;
- DEFOCTAL * = 000E0000H;
- DEFBINARY * = 00100000H;
- DEFFLOAT * = 00120000H;
- CURSOROFF * = 0;
- CURSORON * = 1;
- ACCB_ERASE * = 31;
- ACCF_ERASE * = 80000000H;
- ACCB_RAWKEY * = 28;
- ACCF_RAWKEY * = 10000000H;
- ACCB_DUALKEY * = 27;
- ACCF_DUALKEY * = 08000000H;
- ACCB_UPKEY * = 26;
- ACCF_UPKEY * = 04000000H;
- ACCB_ECHO * = 25;
- ACCF_ECHO * = 0200000H;
- ACCB_WAIT * = 24;
- ACCF_WAIT * = 01000000H;
- ACCB_JUSTIFIED * = 22;
- ACCF_JUSTIFIED * = 00400000H;
- ACCB_CONTINUE * = 21;
- ACCF_CONTINUE * = 00200000H;
- ACCB_OVERWRITE * = 20;
- ACCF_OVERWRITE * = 00100000H;
- ACCB_LASTEXIT * = 19;
- ACCF_LASTEXIT * = 00080000H;
- ACCB_FULLSTOP * = 18;
- ACCF_FULLSTOP * = 00040000H;
- ACCB_NOAMIGA * = 17;
- ACCF_NOAMIGA * = 00020000H;
- ACCB_NOSTDAMIGA * = 16;
- ACCF_NOSTDAMIGA * = 00010000H;
- ACCB_NOSCROLL * = 15;
- ACCF_NOSCROLL * = 00008000H;
- SGFB_PLAIN * = 0;
- SGFF_PLAIN * = 0000H;
- SGFB_BOLD * = 1;
- SGFF_BOLD * = 0001H;
- SGFB_ITALIC * = 2;
- SGFF_ITALIC * = 0002H;
- SGFB_UNDERLINED * = 3;
- SGFF_UNDERLINED * = 0004H;
- CNV_DECIMAL * = 00000001H;
- CNV_HEX * = 00000002H;
- CNV_OCTAL * = 00000003H;
- CNV_BINARY * = 00000004H;
- CNV_SIGNED * = 00010000H;
- CNV_LEADSPACE * = 00020000H;
- AKEY_NONE * = 0;
- AKEY_HELP * = 5;
- AKEY_BS * = 8;
- AKEY_TAB * = 9;
- AKEY_LF * = 10;
- AKEY_RETURN * = 13;
- AKEY_ARROWRG * = 17;
- AKEY_ARROWLF * = 18;
- AKEY_ARROWUP * = 19;
- AKEY_ARROWDN * = 20;
- AKEY_ESC * = 27;
- AKEY_DEL * = 127;
- AKEY_F1 * = 129;
- AKEY_F2 * = 130;
- AKEY_F3 * = 131;
- AKEY_F4 * = 132;
- AKEY_F5 * = 133;
- AKEY_F6 * = 134;
- AKEY_F7 * = 135;
- AKEY_F8 * = 136;
- AKEY_F9 * = 137;
- AKEY_F10 * = 138;
- AKEY_CSI * = 155;
-
- VAR
- con* [4] : ConBasePtr;
-
- PROCEDURE OpenCon * {con, -30} (ConWindow {8}:ADDRESS; CursorMode {0}:INTEGER):ADDRESS;
- PROCEDURE CloseCon * {con, -36} (ConHandle {8}:ADDRESS);
- PROCEDURE DoFormat * {con, -42} (ConHandle {8}, String {9}, FormatArgs {10}, TextBuffer {11}:ADDRESS; BufferSize {0}: LONGINT):ADDRESS;
- PROCEDURE UserNotes * {con, -48} (ConHandle {8}, UserText {9}:ADDRESS; NoteNumber {0}:INTEGER);
- PROCEDURE DefineChars * {con, -54} (Mode {0}:INTEGER; BitTable {9}, ArrayOfChars {10}:ADDRESS);
- PROCEDURE DisplayRaw * {con, -60} (ConHandle {8}, String {9}:ADDRESS; MaxLength {0}:LONGINT);
- PROCEDURE Display * {con, -66} (ConHandle {8}, String {9}, FormatArgs {10}:ADDRESS; MaxLength {0}:LONGINT);
- PROCEDURE Accept * {con, -72} (ConHandle {8}, AcceptStructure {9}:ADDRESS; Flags {0}:LONGINT):LONGINT;
- PROCEDURE AcceptString * {con, -78} (ConHandle {8}, AcceptStructure {9}:ADDRESS; Flags {0}:LONGINT):LONGINT;
- PROCEDURE SetMsgHandler * {con, -84} (ConHandle {8}, NewMsgHandler {9}:ADDRESS):ADDRESS;
- PROCEDURE GetInfo * {con, -90} (ConHandle {8}, ConInfo {9}:ADDRESS):ADDRESS;
- PROCEDURE SetGfx * {con, -96} (ConHandle {8}:ADDRESS; Styles {0}, FgCol {1}, BgCol {2}:INTEGER);
- PROCEDURE GotoXY * {con, -102} (ConHandle {8}:ADDRESS; X {0}, Y {1}: INTEGER);
- PROCEDURE Cursor * {con, -108} (ConHandle {8}:ADDRESS; Mode {0}:INTEGER);
- PROCEDURE Scroll * {con, -114} (ConHandle {8}:ADDRESS; Step {0}:INTEGER);
- PROCEDURE Convert * {con, -120} (String {9}, ResultBuffer {10}:ADDRESS; Flags {0}:LONGINT; MaxLength {1}:INTEGER):ADDRESS;
-
- END ConLib.
-